home *** CD-ROM | disk | FTP | other *** search
- ' ___________________________________________________________________________
- ' |*************************************************************************|
- ' |*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|
- ' |*| Set TAB to 4 for best readable file layout. |*| Maxon Basic 3.00 |*|
- ' |*|______________________________________________|*|____________________|*|
- ' |*************************************************************************|
- ' |*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|
- ' |*| |*| $Id: extra.bc (28.04.01) |*|
- ' |*| ###### ###### |*| RhoSigma Source based on NDK 3.1 Includes 40.15 |*|
- ' |*| ## ## ## # |*| _________________________________________________ |*|
- ' |*| ## ## ## |*| |*|
- ' |*| ###### ## |*| The public BASIC definitions for extra.library |*|
- ' |*| ## ## |*| |*|
- ' |*| ## ## # |*| ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ |*|
- ' |*| ## ###### |*| Copyright © 1998-2001 RhoSigma, Roland Heyder |*|
- ' |*| |*| All Rights Reserved. |*|
- ' |*|_______________|*|___________________________________________________|*|
- ' |*************************************************************************|
- ' ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
-
- ' ACHTUNG: Im Hauptmodul muß VOR "$INCLUDE extra.bc bzw. -.bh" die Datei
- ' "rhosigma/settings.bc" includiert werden, damit diese Include-Datei
- ' richtig funktioniert. Ansonsten könnte es vorkommen, daß gar kein
- ' oder unvollständiger Code generiert wird.
-
- ' SCHREIBEN SIE DIE INCLUDE-ANWEISUNG NICHT AN DEN KOPF DIESER DATEI !!
- ' ICH HABE DAS SCHON ALLES AUSPROBIERT, WAS JEDESMAL EINEN SOFORTIGEN
- ' SYSTEM-ABSTURZ ZUR FOLGE HATTE !!
-
- '$UNDERLINES
-
- '---------- die BufInfoBlock-Struktur von »BufInfo()« -----------------------
-
- CONST bib_OwnerID% = 0 '(APTR) Task, der diesen Puffer öffnete
- CONST bib_MaxSize% = 4 '(ULONG) momentane Größe des Datenbereichs in Byte
- CONST bib_FreeSize% = 8 '(ULONG) davon momentan noch unbenutzt
- CONST bib_DataStart% = 12 '(APTR) Adresse des gegenwärtigen Datenbereichs
- CONST bib_CurPos% = 16 '(ULONG) aktuelle Cursorposition (Zählbeginn=0 !!)
- CONST bib_EndPos% = 20 '(ULONG) aktuelle Anfügeposition
- CONST bib_LastFind% = 24 '(APTR) Zeiger auf zuletzt gesuchte Daten od. 0-PTR
- CONST bib_FindSize% = 28 '(ULONG) die Länge obiger Such-Daten oder null
- CONST bib_KeyNum% = 32 '(ULONG) der Schlüssel der o.g. Such-Daten oder -1
- '------------------------------------- neu ab v2.062
- CONST bib_DataMemType% = 36 '(ULONG) Speicherflags (MEMF_...) des Datenbereichs
- '---------------------------------------------------
- CONST bib_SizeOf% = 40
-
- '---------- Modes für »SeekBuf()« -------------------------------------------
-
- CONST SKM_Current% = 0 'Positionierung relativ zur gegenwärtigen CurPos
- CONST SKM_Start% = 1 'Positionierung relativ zum Pufferanfang
- CONST SKM_End% = 2 'Positionierung relativ zum Pufferende
- CONST SKM_Bookmark% = 3 '»Position« = Nummer der gewünschten Bookmark
-
- '---------- die Parameter-Struktur für »UnpackByteRun1()« -------------------
-
- CONST up_InBuf% = 0 '(APTR) Zeiger auf die gepackten Daten
- CONST up_InLen% = 4 '(ULONG) die Größe des gepackten Bereichs in Byte
- CONST up_Private% = 8 '(ULONG) beim ersten Aufruf unbedingt auf 0 setzen
- CONST up_SizeOf% = 12
-
- '---------- Styles, Masken u. Flags für »SpecTextPrefs()« -------------------
-
- '** Styles **
- CONST STS_Plain% = 0 'normaler Text \
- CONST STS_Underline% = 1 'unterstrichener Text | können durch Addition oder
- CONST STS_Bold% = 2 'fettgedruckter Text | log. ODER kombiniert werden
- CONST STS_Italic% = 4 'kursiver Text /
-
- '** Masken **
- CONST STM_Normal% = &H0 'keine Umrandung, d.h. normale Textausgabe
- CONST STM_Outline% = &Hff 'volle Umrandung
- CONST STM_Shadow% = &H1c 'Schatten unten/rechts sichtbar
- CONST STM_Ghost% = &Hc1 'dies wirkt am besten, wenn Sie als »MPen«
- 'die selbe Farbe verwenden, wie der Hinter-
- 'grund hat
-
- '** Flags **
- CONST STF_FJAM2& = 1 'Normalerweise benutzt »SpecText()« den DrawMode JAM1,
- 'mit diesem Flag wird jedoch JAM2 erzwungen.
- CONST STF_AP2MP& = 2 'immer der gerade eingestellte »APen« des RastPorts
- 'soll als »MainPen« (MPen) verwendet werden
- CONST STF_BP2TL& = 4 'immer der gerade eingestellte »BPen« des RastPorts
- 'soll als »TopLeftPen« (TLPen) verwendet werden
- CONST STF_OP2BR& = 8 'immer der gerade eingestellte »OPen« des RastPorts
- 'soll als »BottomRightPen« (BRPen) verwendet werden
- CONST STF_PSWAP& = 16 'vertauscht »TLPen« u. »BRPen«, d.h. »TLPen« wird für
- 'un./re. und »BRPen« für ob./li. verwendet
-
- ' Die folgenden Flags haben keinen Einfluß auf die Arbeitsweise der Funk-
- ' tion »SpecText()«. Sie dienen nur dazu, »SpecTextPrefs()« mitzuteilen,
- ' welche Parameter neu eingestellt werden sollen. Damit soll überflüssiges
- ' Register-retten verhindert werden, da Sie nicht jedem Register, welches
- ' von »SpecTextPrefs()« erwartet wird, zwangsläufig einen sinnvollen Wert
- ' zuweisen müssen. Wenn Sie z.B. mit D0-D5 irgendwelche Berechnungen machen,
- ' oder sie als Schleifenzähler benutzen, und wollen dann den »MPen« ver-
- ' ändern, dann brauchen Sie nur D0 mit diesem zu initialisieren und D5 das
- ' entsprechende Flag (STF_CMPEN) zuweisen, während Sie sich um D1-D4 nicht
- ' sorgen müssen, da diese bei jenem Aufruf vollkommen unberührt und unver-
- ' ändert bleiben, d.h. sie müssen weder gerettet noch initialisiert werden.
- '
- ' ACHTUNG: Wenn keines der folgenden Flags angegeben wird, dann heißt das
- ' ¯¯¯¯¯¯¯¯ nicht, daß KEIN Wert geändert werden soll, sondern daß ALLE Werte
- ' zu ändern sind !! (In diesem Falle müssen dann logischer Weise
- ' auch alle Register initialisiert werden.)
-
- CONST STF_CMPEN& = 1024 'Nur den »MPen« auf den angegebenen Wert ändern.
- CONST STF_TLPEN& = 2048 'Nur den »TLPen« auf den angegebenen Wert ändern.
- CONST STF_BRPEN& = 4096 'Nur den »BRPen« auf den angegebenen Wert ändern.
- CONST STF_STYLE& = 8192 'Nur den SoftStyle auf den angegebenen Wert ändern.
- CONST STF_CMASK& = 16384 'Nur die Maske auf den angegebenen Wert ändern.
- CONST STF_FLAGS& = 32768 'Nur die Flags auf den angegebenen Wert ändern.
-
- ' Es können auch alle Kombinationen der obigen Flags angegeben werden. Die
- ' Funktion »SpecTextPrefs()« wird dann alles das, was Sie wünschen, ändern.
-
- '---------- Fehlernummern von »LastError()« ---------------------------------
-
- CONST NoError% = 0 'bis jetzt ist kein Fehler aufgetreten
-
- '** DBS-Funktionen **
- CONST BufInvalid% = 10 'die angegebene Adresse war kein BufHandle
- CONST NotOwner% = 11 'nur der Task, der den Puffer öffnete, darf ihn auch wieder schließen
- CONST NoBufMemory% = 12 'nicht mehr genügend Speicher frei (MEMF_ s.a. bib_DataMemType%)
- CONST NoDOSProcess% = 13 'die aufrufende Anwendung war kein DOS-Prozess
- CONST IoErrRequired%= 14 'ein DOS-Error ist aufgetreten (»IoErr()« der dos.library aufrufen)
- CONST SeekBadMode% = 15 'der angegebene »SeekMode« ist unbekannt
- CONST SeekOffsetErr%= 16 'gewünschte »Position« unter-/überschreitet den Pufferanfang bzw. das Pufferende
- CONST NoFindMem% = 17 'kein Speicher für Zwischenspeicherung der zu suchenden Daten (MEMF_PUBLIC)
- CONST FindTooLong% = 18 'von CurPos bis EndPos bzw. Pufferanfang sind nur noch weniger Daten, als gesucht werden sollen
- CONST NoFindAvail% = 19 'für »FindNext()/FindPrev()« ist mindestens ein »FindData()« erforderlich (gilt für jeden möglichen Schlüssel)
- CONST InvalidKey% = 20 'ein angegebener Schlüssel liegt außerhalb des gültigen Bereichs (bei Find-Funktionen max. 8 (0-7) / bei Bookmarks max. 16 (0-15))
- CONST MarkNotSet% = 21 'die angegebene Bookmark ist noch nicht gesetzt
- CONST MarkCleared% = 22 'die Daten an der angegebenen Bookmark wurden durch »Clear()« gelöscht
-
- '** StringToLong() **
- CONST ResultValid% = 30 'alles in Ordnung (das Ergebnis ist gültig)
- CONST InvalidChar% = 31 'im String wurde ein illegales Zeichen gefunden
- CONST Overflow% = 32 'repräsentierte Zahl wäre größer als 32 Bit (LONG)
-
- '** FillMem() **
- CONST OddAddress% = 35 'ungerade Startadresse bei WORD- oder LONG-Modus
- CONST NotFilled% = 36 'keine Füllung wegen Abrundung (Bereich zu klein, um wenigstens 1 Wert aufzunehmen)
-
- '** ShowMsg() **
- CONST BadHeight% = 40 'angegebene Höhe war größer als 200 Videozeilen
- CONST NoStructMem% = 41 'kein Speicher für benötigte Gfx-Strukturen (MEMF_ANY)
- CONST NoChipMemory% = 42 'nicht genügend Speicher für die BitPlanes (MEMF_CHIP)
- CONST SpecTextErr% = 43 'die Funktion »SpecText()« hat einen Fehler gemeldet
-
- '---------- die Basis-Struktur der extra.library ----------------------------
-
- CONST xb_Copyright% = 34 '(APTR) ein einzeiliger Copyrightvermerk(+0)
- CONST xb_Private% = 38 'ab hier 54 Bytes privater Datenbereich der Library
- CONST xb_SizeOf% = 92
-
- '---------- von der extra.library erzeugte Alert's --------------------------
-
- CONST EL_AlertD& = &HB5000000
- CONST EL_AlertR& = &H35000000
- 'Typen-Kennungen der extra.library ($B5000000=DeadEnd/$35000000=Recovery)
-
- CONST EL_NoDfo& = &HB503800B
- 'konnte diskfont.library V33+ (bzw. V36+ für CGX-Version) nicht öffnen
-
- CONST EL_NoDOS& = &HB5038007
- 'konnte dos.library V33+ (bzw. V36+ für CGX-Version) nicht öffnen
-
- CONST EL_NoGfx& = &HB5038002
- 'konnte graphics.library V33+ (bzw. V36+ für CGX-Version) nicht öffnen
-
- CONST EL_NoInt& = &HB5038004
- 'konnte intuition.library V33+ (bzw. V36+ für CGX-Version) nicht öffnen
-
- CONST EL_Trespassed& = &HB5068035
- 'Task hat Library benutzt, ohne sie vorher zu öffnen
-
- '---------- mit extra.library verwendbare SUB-Routinen ----------------------
-
- CONST SMTPOS_C% = -1 'Text zentrieren
- CONST SMTPOS_L% = -2 'Text linksbündig
- CONST SMTPOS_R% = -3 'Text rechtsbündig
-
- '*** extra.library / SMCOLOR() ***
- '============================================================================
- ' Diese Routine erstellt einen Farbeintrag für die optional anzugebende Farb-
- ' tabelle für die Funktion »ShowMsg()«.
- '----------------------------------------------------------------------------
- ' Definiert: extra.bc (Copyright © 1998-2001 RhoSigma, Roland Heyder)
- '
- ' Schablone: Pen%/A/N, Red%/A/N, Green%/A/N, Blue%/A/N, EndFlag%/K/S
- '
- ' Parameter: Pen% --> Nr. des zu ändernden Farbstiftes (3-15)
- ' (0-2 sind reserviert u. werden ignoriert)
- '
- ' Red% --> Rot-Anteil der neuen Farbe (0-15)
- ' Green% --> Grün-Anteil der neuen Farbe (0-15)
- ' Blue% --> Blau-Anteil der neuen Farbe (0-15)
- '
- ' EndFlag% --> - TRUE% , dann endet hier die Farbtabelle
- ' - FALSE%, dann MUSS noch ein weiterer Farbeintrag
- ' (SUB-Aufruf) folgen.
- '
- ' Bemerkung: Nach Aufruf der Routine für alle einzelnen Farbeinträge finden
- ' Sie die fertige Farbtabelle in der Variable »smFarb$«, welche
- ' Sie an »ShowMsg()« mittels »SADD(smFarb$)« übergeben müssen.
- '
- ' Ein Beispiel für die Benutzung dieser Routine finden Sie in der
- ' Datei »demo/ShowMsgDemo.BAS«.
- '
- ' ACHTUNG: Sie dürfen in Ihrem Programm keine eigene Stringvariable mit
- ' ¯¯¯¯¯¯¯¯ dem Namen »smFarb$« verwenden, da diese unweigerlich durch
- ' dieses Unterprogramm überschrieben werden würde.
- '
- ' Außerdem müssen Sie die Farbtabelle immer unmittelbar vor
- ' dem »ShowMsg()«-Aufruf definieren, da die Variable »smFarb$«
- ' jedesmal wieder überschrieben wird, und daher immer nur die
- ' zuletzt erstellte Farbtabelle enthält.
- '
- ' Siehe auch: »SMTEXTP()«, »SMTEXT()«, »ShowMsg()«
- '============================================================================
-
- SUB SMCOLOR(Pen%,Red%,Green%,Blue%,EndFlag%) STATIC
- SHARED smFarb$
- STATIC lFlag%
-
- IF lFlag%<>FALSE% THEN ' wird eine neue Farbtabelle angefangen,
- lFlag%=FALSE% ' dann »smFarb$« erst zurücksetzen
- smFarb$=""
- ELSE
- lFlag%=EndFlag%
- END IF
-
- smFarb$=smFarb$+CHR$(Pen%)+MKI$(Red%*256+Green%*16+Blue%)
-
- IF EndFlag%=FALSE% THEN ' wenn kein END-Flag, dann Continue-Byte
- smFarb$=smFarb$+CHR$(1) ' setzen, ansonsten 0-Byte
- ELSE
- smFarb$=smFarb$+CHR$(0)
- END IF
-
- END SUB
-
- '*** extra.library / SMTEXTP() ***
- '============================================================================
- ' Diese Routine erstellt einen Teilstring des Parameterstrings der Funktion
- ' »ShowMsg()« inclusive der gewünschten Einstellungen für die Textausgabe.
- ' Wahlweise kann der Text automatisch zentriert, oder links- bzw. rechtsbündig
- ' ausgerichtet werden.
- '----------------------------------------------------------------------------
- ' Definiert: extra.bc (Copyright © 1998-2001 RhoSigma, Roland Heyder)
- '
- ' Schablone: xPos%/A/N, yPos%/A/N, MPen%/A/N, TLPen%/A/N, BRPen%/A/N,
- ' Style%/A/N, Mask%/A/N, Text$/A, EndFlag%/K/S
- '
- ' Parameter: xPos% --> x-Position des Textes,
- ' oder einer der oben definierten SMTPOS-Werte
- '
- ' yPos% --> y-Position des Textes,
- ' Ausrichtung an der Oberkante des Fonts
- '
- ' MPen% --> gewünschter MainPen \
- ' TLPen% --> gewünschter TopLeftPen |
- ' BRPen% --> gewünschter BottomRightPen | (s. »SpecTextPrefs()«)
- ' Style% --> gewünschter SoftStyle |
- ' Mask% --> gewünschte Randmaske /
- '
- ' Text$ --> der Text selbst als Variable oder Konstante
- '
- ' EndFlag% --> - TRUE% , dann endet hier der Parameterstring
- ' - FALSE%, dann MUSS noch ein weiterer Teilstring
- ' (SUB-Aufruf) folgen.
- '
- ' Bemerkung: Nach Aufruf der Routine für alle einzelnen Teilstrings finden
- ' Sie den fertigen Parameterstring in der Variable »smAlert$«,
- ' welche Sie an »ShowMsg()« mittels »SADD(smAlert$)« übergeben
- ' müssen.
- '
- ' Diese Routine sollten Sie nur dann verwenden, wenn Sie für
- ' diesen Teilstring neue Einstellungen für Farben etc. machen
- ' wollen. Wenn dieser Teilstring jedoch mit den gleichen Ein-
- ' stellungen ausgegeben werden soll, wie der vorhergehende bzw.
- ' Sie die Default-Einstellungen verwenden wollen, dann müssen
- ' Sie stattdessen die Routine »SMTEXT()« verwenden.
- '
- ' Ein Beispiel für die Benutzung dieser Routine finden Sie in
- ' der Datei »demo/ShowMsgDemo.BAS«.
- '
- ' ACHTUNG: Sie dürfen in Ihrem Programm keine eigene Stringvariable mit
- ' ¯¯¯¯¯¯¯¯ dem Namen »smAlert$« verwenden, da diese unweigerlich durch
- ' dieses Unterprogramm überschrieben werden würde. Außerdem
- ' dürfen Sie auch nicht »smlFlag%« benutzen, da über dieses
- ' wichtige Daten zwischen den beiden Routinen »SMTEXTP()« und
- ' »SMTEXT()« ausgetauscht werden !!
- '
- ' Außerdem müssen Sie den Parameterstring immer unmittelbar vor
- ' dem »ShowMsg()«-Aufruf definieren, da die Variable »smAlert$«
- ' jedesmal wieder überschrieben wird, und daher immer nur den
- ' zuletzt erstellten Parameterstring enthält.
- '
- ' Siehe auch: »SMCOLOR()«, »SMTEXT()«, »ShowMsg()«
- '============================================================================
-
- SUB SMTEXTP(xPos%,yPos%,MPen%,TLPen%,BRPen%,Style%,Mask%,Text$,EndFlag%) STATIC
- SHARED smAlert$,smlFlag%
-
- IF smlFlag%<>FALSE% THEN ' wird ein neuer ParamString angefangen,
- smlFlag%=FALSE% ' dann »Alert$« erst zurücksetzen
- smAlert$=""
- ELSE
- smlFlag%=EndFlag%
- END IF
-
- IF xPos%=SMTPOS_C% THEN ' gewünschte Ausrichtung,
- xPos%=(640-(LEN(Text$)*8))/2 ' falls angegeben
- ELSEIF xPos%=SMTPOS_L% THEN
- xPos%=12
- ELSEIF xPos%=SMTPOS_R% THEN
- xPos%=(640-(LEN(Text$)*8))-12
- END IF
-
- smAlert$=smAlert$+MKI$(xPos%)+CHR$(yPos%)+CHR$(1)+CHR$(MPen%)+CHR$(TLPen%)
- smAlert$=smAlert$+CHR$(BRPen%)+CHR$(Style%)+CHR$(Mask%)+Text$+CHR$(0)
-
- IF EndFlag%=FALSE% THEN ' wenn kein END-Flag, dann Continue-Byte
- smAlert$=smAlert$+CHR$(1) ' setzen, ansonsten 0-Byte
- ELSE
- smAlert$=smAlert$+CHR$(0)
- END IF
-
- END SUB
-
- '*** extra.library / SMTEXT() ***
- '============================================================================
- ' Diese Routine erstellt einen Teilstring des Parameterstrings der Funktion
- ' »ShowMsg()«. Wahlweise kann der Text automatisch zentriert, oder links- bzw.
- ' rechtsbündig ausgerichtet werden.
- '----------------------------------------------------------------------------
- ' Definiert: extra.bc (Copyright © 1998-2001 RhoSigma, Roland Heyder)
- '
- ' Schablone: xPos%/A/N, yPos%/A/N, Text$/A, EndFlag%/K/S
- '
- ' Parameter: xPos% --> x-Position des Textes,
- ' oder einer der oben definierten SMTPOS-Werte
- '
- ' yPos% --> y-Position des Textes,
- ' Ausrichtung an der Oberkante des Fonts
- '
- ' Text$ --> der Text selbst als Variable oder Konstante
- '
- ' EndFlag% --> - TRUE% , dann endet hier der Parameterstring
- ' - FALSE%, dann MUSS noch ein weiterer Teilstring
- ' (SUB-Aufruf) folgen.
- '
- ' Bemerkung: Nach Aufruf der Routine für alle einzelnen Teilstrings finden
- ' Sie den fertigen Parameterstring in der Variable »smAlert$«,
- ' welche Sie an »ShowMsg()« mittels »SADD(smAlert$)« übergeben
- ' müssen.
- '
- ' Dieses Macro sollten Sie nur dann verwenden, wenn Sie für
- ' diesen Teilstring die gleichen Einstellungen wie für den vor-
- ' hergehenden Teilstring verwenden wollen. Wenn dieser Teil-
- ' string jedoch neue Einstellungen für Farben etc. erhalten
- ' soll, dann müssen Sie stattdessen das Macro »SMTEXTP()« ver-
- ' wenden.
- '
- ' Ein Beispiel für die Benutzung dieser Routine finden Sie in
- ' der Datei »demo/ShowMsgDemo.BAS«.
- '
- ' ACHTUNG: Sie dürfen in Ihrem Programm keine eigene Stringvariable mit
- ' ¯¯¯¯¯¯¯¯ dem Namen »smAlert$« verwenden, da diese unweigerlich durch
- ' dieses Unterprogramm überschrieben werden würde. Außerdem
- ' dürfen Sie auch nicht »smlFlag%« benutzen, da über dieses
- ' wichtige Daten zwischen den beiden Routinen »SMTEXTP()« und
- ' »SMTEXT()« ausgetauscht werden !!
- '
- ' Außerdem müssen Sie den Parameterstring immer unmittelbar vor
- ' dem »ShowMsg()«-Aufruf definieren, da die Variable »smAlert$«
- ' jedesmal wieder überschrieben wird, und daher immer nur den
- ' zuletzt erstellten Parameterstring enthält.
- '
- ' Siehe auch: »SMCOLOR()«, »SMTEXTP()«, »ShowMsg()«
- '============================================================================
-
- SUB SMTEXT(xPos%,yPos%,Text$,EndFlag%) STATIC
- SHARED smAlert$,smlFlag%
-
- IF smlFlag%<>FALSE% THEN ' wird ein neuer ParamString angefangen,
- smlFlag%=FALSE% ' dann »Alert$« erst zurücksetzen
- smAlert$=""
- ELSE
- smlFlag%=EndFlag%
- END IF
-
- IF xPos%=SMTPOS_C% THEN ' gewünschte Ausrichtung,
- xPos%=(640-(LEN(Text$)*8))/2 ' falls angegeben
- ELSEIF xPos%=SMTPOS_L% THEN
- xPos%=12
- ELSEIF xPos%=SMTPOS_R% THEN
- xPos%=(640-(LEN(Text$)*8))-12
- END IF
-
- smAlert$=smAlert$+MKI$(xPos%)+CHR$(yPos%)+CHR$(0)+Text$+CHR$(0)
-
- IF EndFlag%=FALSE% THEN ' wenn kein END-Flag, dann Continue-Byte
- smAlert$=smAlert$+CHR$(1) ' setzen, ansonsten 0-Byte
- ELSE
- smAlert$=smAlert$+CHR$(0)
- END IF
-
- END SUB
-